package xyz.lwm.lazycat.web.settings;

import lombok.Data;

/**
 * <h3>HTTP代理设置</h3>
 * <p>使用说明:</p>
 * <pre>
 * 1. 路径前缀: 匹配请求路径前缀, 用前缀来识别代理请求;
 * 2. 目标主机: 代理服务目标主机, 请求的接口会转发到此主机;
 * 3. 监听端口: 代理服务监听端口, 监听此端口的请求会转发到此主机;
 * 4. 重写路径: 重写请求路径的前缀, 并替换原有前缀;
 * </pre>
 * <p>重写前缀说明</p>
 * <pre>
 * 1. 默认为空, 则使用原路径, 不处理路径前缀. 如: prefixPath: /v1, rewritePath: "" , 则请求 /v1/students -> /v1/students
 * 2. 配置了重写路径, 则使用重写路径前缀. 如: prefixPath: /v1, rewritePath: /v2 , 则请求 /v1/students -> /v2/students
 * 3. 重写路径为 / , 则可以移除前缀. 如: prefixPath: /v1, rewritePath: /  , 则请求 /v1/students/1 -> /students/1
 * </pre>
 * <pre>
 * 该配置项, 实现了基本的反向代理功能, 再结合本程序可以部署html, 那么就可以实现前端代码部署。
 * </pre>
 *
 * @author lwm
 */
@Data
public class ProxyHttpSetting {

    // 路径前缀 (/students)
    private String prefixPath;

    // 目标主机 (ip)
    private String targetHost;

    // 监听端口
    private int listenPort;

    // 重写路径 (/students-> /api/students)
    private String rewritePath;

}
